/**
 * @param {string} s
 * @return {number[]}
 */
 var partitionLabels = function(s) {
  let hash = {} // 用来收集这个元素最后出现的位置
  for(let i = 0;i < s.length;i++){
      hash[s[i]] = i
  }
  let right = 0
  let result = []
  let start = 0
  for(let i = 0;i < s.length;i++){
      right = Math.max(right,hash[s[i]]) // 更新最右边的值
      if(right === i){
          // 如果当前的i是最右边的值说明走到了片段的最后一位
          result.push(i - start + 1)
          start = i+1 // 重新赋值start 是前面的
      }
  }
  return result
};